Cluster Server
נניח ויש לי מערכת גדולה ואני צריך לחלק אותה בין מספר שרתים. השאלה איך זה באמת עובד באתרים גדולים כמו פייסבוק/יוטיוב כאשר מעלים קבצים רבים. יש שרת שאחראי על החלוקה לשרתים אחרים? האם קיים סקריפט כזה שיכול לעזור לי?
3 תשובות
כאשר יש לך כמה שרתים שמפעילים קוד מתווסף לתמונה שרת חדש שנקרא Load Balancer
הוא מקבל את כל כל כל הבקשות שמגיאות לאתר שלך ומעביר את הבקשות האלה לאחד מתוך כמה השרתים שמוגדר בהגדרות של ה load balancer לפי כל מיני פרמטרים שהוא מחליט. או בצורה רנדומלית, או לפי עומס עם הוא יודע איזה שרת עמוס יותר, הכלי הפופולורי היום ל Load Balancing זה או nginx למעט שרתים עו HaProxy להרבה שרתים.
רמה אחת מעל כשיש לך לא רק הרבה שרתים אלה השרתים גם מפוזרים בדאטה סנטרים מסביב לעולם - הניטוב מתבצע לא ברמת שרת מנטב (Load balancer) אלה ברמת רשומות ה DNS. כאשר אתה מקליד כתובת של אתר בדפדפן, הדפדפן צריך לקבל משרת ה-DNS את כתובת האיפי שאליה הדפדפן צריך לפנות.
ברמת ה-DNS הניטוב מתבצע על ידי זה, שעבור מדינה מסוימת שרת ה-DNS מחזיר כתובת איפי אחת בדאטה-סנטר אחד ועבור מדינה אחרת הוא מחזיר איפי של שרת במקום אחר. ככה גולשים ממדינה אחת מגיעים לשרתים במקום אחד וגולשים ממדינה אחרת מגיעים לשרתים במקום אחר.
תודה אלכס.
ראיתי שיש משהו דומה גם לאפ'צי. בשם mod_proxy_balancer
http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html
האם זה בסדר? קראתי שלא ממליצים להשתמש בו אבל לא הבנתי ממש למה..